Global Mortality Rates: Children Ages 5-9

Author

Megan Burriesce

Introduction

This report provides a comprehensive analysis of global child mortality rates for ages 5-9, using recent UNICEF data. Through a series of visualizations, we explore how mortality rates have changed over time, how they differ by country and region, and what factors may contribute to these disparities. The report also examines the relationship between economic development and child mortality, as well as differences by gender, to highlight areas where targeted interventions are most needed.

Key Findings

  • Child mortality rates show substantial variation across countries and regions, with some countries experiencing rates several times higher than others.
  • While global mortality rates have declined over recent decades, progress has been uneven, and significant disparities persist, especially in low-income regions.
  • Socioeconomic status, healthcare access, and education are strongly associated with lower child mortality rates, as shown by the negative correlation between GDP per capita and mortality.
  • Gender differences in child mortality are minimal at the global level, but continued monitoring is important to ensure equity.

Trend Analysis

Code
import pandas as pd
import plotly.express as px
import numpy as np
from sklearn.linear_model import LinearRegression

# Load data
child = pd.read_csv('unicef_indicator_1.csv')
meta = pd.read_csv('unicef_metadata.csv')

# Get the most recent GDP per capita for each country
meta_gdp = meta.dropna(subset=["GDP per capita (constant 2015 US$)"])
meta_gdp = meta_gdp.sort_values("year").groupby("country", as_index=False).last()

# Filter for 2022, total
child_2022 = child[(child['time_period'] == 2022) & (child['sex'] == 'Total')]
# Merge with most recent GDP per capita
merged = pd.merge(child_2022, meta_gdp[['country', 'GDP per capita (constant 2015 US$)']], on='country', how='left')
merged = merged.dropna(subset=['GDP per capita (constant 2015 US$)', 'obs_value'])
# Remove zero or negative GDP values
merged = merged[merged['GDP per capita (constant 2015 US$)'] > 0]
# Take log of GDP per capita
merged['log_gdp'] = np.log10(merged['GDP per capita (constant 2015 US$)'])

# Prepare regression
X = merged['log_gdp'].values.reshape(-1, 1)
y = merged['obs_value'].values
model = LinearRegression()
model.fit(X, y)
y_pred = model.predict(X)

# Scatter plot with regression line
fig_gdp = px.scatter(
    merged,
    x='log_gdp',
    y='obs_value',
    hover_name='country',
    title='Child Mortality Rates by Log(GDP per Capita) (2022)',
    labels={
        'log_gdp': 'Log10(Most Recent GDP per Capita, constant 2015 US$)',
        'obs_value': 'Mortality Rate (per 1000 children)'
    }
)
# Add regression line
fig_gdp.add_traces(px.line(
    x=merged['log_gdp'],
    y=y_pred,
    labels={'x': 'Log10(Most Recent GDP per Capita, constant 2015 US$)', 'y': 'Predicted Mortality Rate'}
).data)
fig_gdp.update_traces(line=dict(color='red'), selector=dict(type='scatter', mode='lines'))
fig_gdp.update_layout(
    showlegend=False,
    height=500,
    margin=dict(l=40, r=40, t=60, b=60),
    plot_bgcolor='white',
    paper_bgcolor='white'
)
fig_gdp.show()

Analysis:

The scatterplot demonstrates a clear negative correlation between a country’s economic prosperity (as measured by GDP per capita) and its child mortality rate. Countries with higher GDP per capita tend to have much lower mortality rates, indicating that economic development is a key factor in improving child health outcomes. The log scale on the x-axis highlights that the greatest reductions in mortality are seen as countries move from low to middle income. However, some countries deviate from this trend, suggesting that other factors, such as healthcare quality, conflict, or policy, also play important roles. This visualization underscores the importance of both economic growth and targeted health interventions.

Time Series Analysis

Code
import pandas as pd
import plotly.express as px

df = pd.read_csv('unicef_indicator_1.csv')
trend = df[df['sex'] == 'Total'].groupby('time_period')['obs_value'].mean().reset_index()

fig_time = px.line(
    trend,
    x='time_period',
    y='obs_value',
    title="Global Mortality Rate Trend Over Time",
    labels={"obs_value": "Average Mortality Rate (per 1000 children)", "time_period": "Year"},
    markers=True
)
fig_time.update_traces(line=dict(width=3, color='#4F6D7A'))
fig_time.update_layout(
    height=500,
    margin=dict(l=40, r=40, t=60, b=60),
    plot_bgcolor='white',
    paper_bgcolor='white'
)
fig_time.show()

Analysis:

The time series line chart reveals a steady and substantial decline in global child mortality rates for ages 5-9 over the past several decades. This downward trend reflects major improvements in public health, nutrition, disease prevention, and access to medical care worldwide. While the overall pattern is positive, the chart also shows periods of slower progress and occasional plateaus, which may correspond to global crises or regional setbacks. Sustaining and accelerating this progress will require continued investment and attention, especially in countries where declines have stalled.

Global and Regional Comparison of Averages of Child Mortality Rates

Code
import pandas as pd
import plotly.express as px

df = pd.read_csv('unicef_indicator_1.csv')
latest_year = df.groupby('country')['time_period'].max().reset_index()
df_latest = pd.merge(df, latest_year, on=['country', 'time_period'])
df_latest = df_latest[df_latest['sex'] == 'Total']

fig_map = px.choropleth(
    df_latest,
    locations="country",
    locationmode="country names",
    color="obs_value",
    hover_name="country",
    color_continuous_scale="Reds",
    title="Most Recent Global Child Mortality Rate by Country",
    labels={"obs_value": "Mortality Rate (per 1000 children)"},
    height=520
)
fig_map.update_layout(
    coloraxis_colorbar=dict(
        orientation='h',
        x=0.5,
        xanchor='center',
        y=-0.18,
        len=0.7,
        thickness=16,
        title_side='top',
        title_font_size=14,
        tickfont_size=12
    ),
    margin=dict(l=10, r=10, t=60, b=60),
    plot_bgcolor='white',
    paper_bgcolor='white'
)
fig_map.show()

Analysis:

The world map visualization highlights stark geographic disparities in child mortality rates. Sub-Saharan African countries are shown in the darkest shades, indicating the highest mortality rates, while countries in Europe, North America, and parts of Asia have the lowest rates. This pattern reflects differences in healthcare infrastructure, economic development, and social stability. The map also reveals that some countries have made significant progress, while others continue to face persistent challenges. These findings emphasize the need for region-specific strategies and international support to address the most affected areas.

Gender Disparities in Averages of Global Child Mortality Rate

Code
import pandas as pd
import plotly.express as px

# Load data
child = pd.read_csv('unicef_indicator_1.csv')
latest = child[child['time_period'] == 2022]
# Only keep Male and Female
avg_by_gender = latest[latest['sex'].isin(['Male', 'Female'])].groupby('sex', as_index=False)['obs_value'].mean()

# Gender-oriented color palette
gender_colors = ['#1f77b4', '#e377c2']  # blue for Male, pink for Female

fig_gender = px.bar(
    avg_by_gender,
    x='sex',
    y='obs_value',
    color='sex',
    text=avg_by_gender['obs_value'].round(2),
    title='Child Mortality Rates by Gender (2022)',
    labels={'obs_value': 'Average Mortality Rate (per 1000 children)', 'sex': 'Gender'},
    color_discrete_sequence=gender_colors
)
fig_gender.update_traces(textposition='outside')
fig_gender.update_layout(
    showlegend=False,
    height=500,
    margin=dict(l=40, r=40, t=60, b=60),
    plot_bgcolor='white',
    paper_bgcolor='white'
)
fig_gender.show()

Analysis:

The bar chart compares average child mortality rates for boys and girls in 2022. The results show that the rates are nearly identical, with only a very slight difference between genders. This suggests that, at the global level, gender-based disparities in child mortality for ages 5-9 are minimal. However, it is important to note that this global average may mask differences within specific countries or regions, where cultural, social, or economic factors could lead to greater disparities. Ongoing monitoring and disaggregated data are essential to ensure that both boys and girls have equal opportunities for survival and health.

Conclusion

This report demonstrates that while global child mortality rates have declined, significant disparities remain across countries, regions, and genders. The visualizations underscore the importance of economic development, healthcare access, and targeted interventions in reducing mortality. Continued investment in healthcare, education, and region-specific policies is essential to ensure all children have the opportunity to survive and thrive, regardless of where they are born or their gender.

References

  • UNICEF. (2022). Global Mortality Rates Ages 5-9 for 2022. Retrieved from UNICEF website
  • World Health Organization (WHO). (2022). Child Mortality. Retrieved from WHO website
  • United Nations Children’s Fund (UNICEF). (2022). The State of the World’s Children 2022. Retrieved from UNICEF website
  • United Nations Development Programme (UNDP). (2022). Human Development Report 2022. Retrieved from UNDP website
  • World Bank. (2022). World Development Indicators. Retrieved from World Bank website
  • UNICEF. (2022). Child Mortality: A Global Perspective. Retrieved from UNICEF website